<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Viewable (jersey-bundle 1.9 API)
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Viewable (jersey-bundle 1.9 API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Viewable.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../com/sun/jersey/api/view/ImplicitProduces.html" title="annotation in com.sun.jersey.api.view"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?com/sun/jersey/api/view/Viewable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Viewable.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.sun.jersey.api.view</FONT>
<BR>
Class Viewable</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.sun.jersey.api.view.Viewable</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/sun/jersey/spi/template/ResolvedViewable.html" title="class in com.sun.jersey.spi.template">ResolvedViewable</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>Viewable</B><DT>extends java.lang.Object</DL>
</PRE>

<P>
A viewable type referencing a template by name and a model to be passed
 to the template. Such a type may be returned by a resource method of a 
 resource class. In this respect the template is the view and the controller 
 is the resource class in the Model View Controller pattern.
 <p>
 The template name may be declared as absolute template name if the name
 begins with a '/', otherwise the template name is declared as a relative
 template name.
 <p>
 A relative template name requires resolving to an absolute template name
 when the viewable type is processed. 
 
 If a resolving class is present then that class will be used to resolve the
 relative template name.
 
 If a resolving class is not present then the class of the last matching
 resource obtained from <A HREF="../../../../../javax/ws/rs/core/UriInfo.html#getMatchedResources()"><CODE>UriInfo.getMatchedResources()</CODE></A>,
 namely the class obtained from the expression
 <code>uriInfo.getMatchedResources().get(0).getClass()</code>, is utilized
 as the resolving class. 
 
 If there are no matching resources then an error will result.
 
 <p>
 The resolving class, and super classes in the inheritence hierarchy, are
 utilized to generate the absolute template name as follows.

 The base path starts with '/' character, followed by the fully
 qualified class name of the resolving class, with any '.' and '$' characters
 replaced with a '/' character, followed by a '/' character,
 followed by the relative template name.

 If the absolute template name cannot be resolved into a template reference
 (see <A HREF="../../../../../com/sun/jersey/spi/template/ViewProcessor.html" title="interface in com.sun.jersey.spi.template"><CODE>ViewProcessor</CODE></A> and <A HREF="../../../../../com/sun/jersey/spi/template/TemplateContext.html" title="interface in com.sun.jersey.spi.template"><CODE>TemplateContext</CODE></A>) then the super class
 of the resolving class is utilized, and is set as the resolving class.
 Traversal up the inheritence hierarchy proceeds until an absolute template
 name can be resolved into a template reference, or the Object class is
 reached, which means the absolute template name could not be resolved and
 an error will result.
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Paul.Sandoz@Sun.Com</DD>
</DL>
<HR>

<P>

<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../com/sun/jersey/api/view/Viewable.html#Viewable(java.lang.String)">Viewable</A></B>(java.lang.String&nbsp;templateName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a new viewable type with a template name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../com/sun/jersey/api/view/Viewable.html#Viewable(java.lang.String, java.lang.Object)">Viewable</A></B>(java.lang.String&nbsp;templateName,
         java.lang.Object&nbsp;model)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a new viewable type with a template name and a model.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../com/sun/jersey/api/view/Viewable.html#Viewable(java.lang.String, java.lang.Object, java.lang.Class)">Viewable</A></B>(java.lang.String&nbsp;templateName,
         java.lang.Object&nbsp;model,
         java.lang.Class&lt;?&gt;&nbsp;resolvingClass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a new viewable type with a template name, a model
 and a resolving class.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/sun/jersey/api/view/Viewable.html#getModel()">getModel</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the model.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Class&lt;?&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/sun/jersey/api/view/Viewable.html#getResolvingClass()">getResolvingClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the resolving class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/sun/jersey/api/view/Viewable.html#getTemplateName()">getTemplateName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the template name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../com/sun/jersey/api/view/Viewable.html#isTemplateNameAbsolute()">isTemplateNameAbsolute</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="Viewable(java.lang.String)"><!-- --></A><H3>
Viewable</H3>
<PRE>
public <B>Viewable</B>(java.lang.String&nbsp;templateName)</PRE>
<DL>
<DD>Construct a new viewable type with a template name.
 <p>
 The model will be set to <code>null</code>.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>templateName</CODE> - the template name, shall not be <code>null</code>.</DL>
</DL>
<HR>

<A NAME="Viewable(java.lang.String, java.lang.Object)"><!-- --></A><H3>
Viewable</H3>
<PRE>
public <B>Viewable</B>(java.lang.String&nbsp;templateName,
                java.lang.Object&nbsp;model)</PRE>
<DL>
<DD>Construct a new viewable type with a template name and a model.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>templateName</CODE> - the template name, shall not be <code>null</code>.<DD><CODE>model</CODE> - the model, may be <code>null</code>.</DL>
</DL>
<HR>

<A NAME="Viewable(java.lang.String, java.lang.Object, java.lang.Class)"><!-- --></A><H3>
Viewable</H3>
<PRE>
public <B>Viewable</B>(java.lang.String&nbsp;templateName,
                java.lang.Object&nbsp;model,
                java.lang.Class&lt;?&gt;&nbsp;resolvingClass)
         throws java.lang.IllegalArgumentException</PRE>
<DL>
<DD>Construct a new viewable type with a template name, a model
 and a resolving class.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>templateName</CODE> - the template name, shall not be <code>null</code>.<DD><CODE>model</CODE> - the model, may be <code>null</code>.<DD><CODE>resolvingClass</CODE> - the class to use to resolve the template name
        if the template is not absolute, if <code>null</code> then the resolving
        class will be obtained from the last matching resource.
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the template name is <code>null</code>.</DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getTemplateName()"><!-- --></A><H3>
getTemplateName</H3>
<PRE>
public java.lang.String <B>getTemplateName</B>()</PRE>
<DL>
<DD>Get the template name.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the template name.</DL>
</DD>
</DL>
<HR>

<A NAME="getModel()"><!-- --></A><H3>
getModel</H3>
<PRE>
public java.lang.Object <B>getModel</B>()</PRE>
<DL>
<DD>Get the model.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the model.</DL>
</DD>
</DL>
<HR>

<A NAME="getResolvingClass()"><!-- --></A><H3>
getResolvingClass</H3>
<PRE>
public java.lang.Class&lt;?&gt; <B>getResolvingClass</B>()</PRE>
<DL>
<DD>Get the resolving class.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the resolving class.</DL>
</DD>
</DL>
<HR>

<A NAME="isTemplateNameAbsolute()"><!-- --></A><H3>
isTemplateNameAbsolute</H3>
<PRE>
public boolean <B>isTemplateNameAbsolute</B>()</PRE>
<DL>
<DD><DL>

<DT><B>Returns:</B><DD>true if the template name is absolute, and starts with a
         '/' character</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Viewable.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../com/sun/jersey/api/view/ImplicitProduces.html" title="annotation in com.sun.jersey.api.view"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?com/sun/jersey/api/view/Viewable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Viewable.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2011 <a href="http://www.oracle.com/">Oracle Corporation</a>. All Rights Reserved.
</BODY>
</HTML>
